use super::hitls_pki_types::{
    HITLS_X509_AttrCmd, HITLS_X509_DN, HITLS_X509_ExtAki, HITLS_X509_GeneralName,
};
use crate::bsl::bsl_list::BslList;
use crate::bsl::bsl_uio::BSL_UIO;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _HITLS_X509_Ext {
    _unused: [u8; 0],
}
pub type HITLS_X509_Ext = _HITLS_X509_Ext;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct _HITLS_X509_Attrs {
    _unused: [u8; 0],
}
pub type HITLS_X509_Attrs = _HITLS_X509_Attrs;
unsafe extern "C" {
    pub fn HITLS_PKI_PrintCtrl(
        cmd: i32,
        val: *mut ::std::os::raw::c_void,
        valLen: u32,
        uio: *mut BSL_UIO,
    ) -> i32;
}
unsafe extern "C" {
    pub fn HITLS_X509_ExtCtrl(
        ext: *mut HITLS_X509_Ext,
        cmd: i32,
        val: *mut ::std::os::raw::c_void,
        valLen: u32,
    ) -> i32;
}
unsafe extern "C" {
    pub fn HITLS_X509_ExtNew(type_: i32) -> *mut HITLS_X509_Ext;
}
unsafe extern "C" {
    pub fn HITLS_X509_ExtFree(ext: *mut HITLS_X509_Ext);
}
unsafe extern "C" {
    pub fn HITLS_X509_ClearAuthorityKeyId(aki: *mut HITLS_X509_ExtAki);
}
unsafe extern "C" {
    pub fn HITLS_X509_FreeGeneralName(data: *mut HITLS_X509_GeneralName);
}
unsafe extern "C" {
    pub fn HITLS_X509_DnListNew() -> *mut BslList;
}
unsafe extern "C" {
    pub fn HITLS_X509_DnListFree(dnList: *mut BslList);
}
unsafe extern "C" {
    pub fn HITLS_X509_AddDnName(list: *mut BslList, dnNames: *mut HITLS_X509_DN, size: u32) -> i32;
}
unsafe extern "C" {
    pub fn HITLS_X509_AttrCtrl(
        attributes: *mut HITLS_X509_Attrs,
        cmd: HITLS_X509_AttrCmd,
        val: *mut ::std::os::raw::c_void,
        valLen: u32,
    ) -> i32;
}
